//
//  电话系统.c
//  自定义类型
//
//  Created by 马鹏朔 on 2022/10/28.
//

#include"contact.h"
void InitContact(Contact* con)
{
    assert(con);
    con->count=0;
    memset(con->data,0,sizeof(con->data));
    
}
 static int xiaomafind(Contact* con,char name[])
{
     
     assert(con);
     int i=0;
     
     for(i=0;i<con->count;i++)
     {
         if(0==strcmp(con->data[i].name,name))
         {
         return i;
         }
     }
  
         return -1;
         
 }

void menu(void)
{
    printf("===============================\n");
    printf("====1.add  2. del  3.serch=====\n");
    printf("=====4.modify      5.show======\n");
    printf("=====6.sort        0.exit======\n");
    printf("===============================\n");
    printf("===============================\n");
    
}
void AddContact(Contact* con)
{
    assert(con);
    if(con->count==Max)
    {
        printf("存放已满\n");
        return ;
    }
    printf("请输入名字");
    scanf("%s",con->data[con->count].name);
    printf("请输入年龄");
    scanf("%d",&(con->data[con->count].age));
    printf("请输入性别");
    scanf("%s",con->data[con->count].sex);
    printf("请输入电话");
    scanf("%s",con->data[con->count].tele);
    printf("请输入地址");
    scanf("%s",con->data[con->count].addr);
    con->count++;
    printf("增加成功\n");
    
}
void ShowContact( const Contact* con)
{
    assert(con);
    int i;
    //printf("%20s\t%5s\t%5s\t%12s\t%30s\n","姓名","年龄","性别","电话","地址");
    for(i=0;i<con->count;i++)
    {
        printf("%2s\t%3d\t%5s\t%12s\t%30s\n",con->data[i].name,con->data[i].age,con->data[i].sex,con->data[i].tele,con->data[i].addr);
    }
}
void DelContanct(Contact* con)
{
    char name[Max]={0};
    printf("请输入你想删除的名字\n");
    assert(con);
    int i;
    scanf("%s",name);
    int pos=xiaomafind(con,name);
    if(pos==-1)
    {
        printf("没有你要删除的人\n");
    }
    else
    {
        for(i=pos;i<con->count;i++)
        {
            con->data[i]=con->data[i+1];
        }
        con->count--;
        printf("删除成功\n");
    }
}
void SerContact(Contact *con)
{
    char name[Max]={0};
    printf("请输入你想查找的名字\n");
    assert(con);
    scanf("%s",name);
    int find =xiaomafind(con,name);
    if(find==-1)
    {
        printf("没有你要查找的用户\n");
    }
    else{
        printf("查找成功\n");
        
    }
}
void ModContact(Contact* con)
{
    char name[Max]={0};
    printf("请输入你想修改的名字\n");
    assert(con);
    scanf("%s",name);
    int find =xiaomafind(con,name);
    if(find==-1)
    {
        printf("没有你要修改的用户\n");
    }
    else{
        
        printf("请输入修改名字");
        scanf("%s",con->data[find].name);
        printf("请输入修改年龄");
        scanf("%d",&(con->data[find].age));
        printf("请输入修改性别");
        scanf("%s",con->data[find].sex);
        printf("请输入修改电话");
        scanf("%s",con->data[find].tele);
        printf("请输入修改地址");
        scanf("%s",con->data[find].addr);
        printf("修改成功\n");
        
    }
    
}
int cmp_stu_by_name(const void*e1,const void*e2)
{
    return strcmp(((peoInfo*)e1)->name,((peoInfo*)e2)->name);
    
    
    }
void SorContact(Contact* con)
{
    assert(con);
    
    qsort(con->data, con->count, sizeof(peoInfo), cmp_stu_by_name);
}
